#!/bin/bash

# VEPAI平台中国网络优化构建脚本 (Linux版本 - 从backend目录运行)
# 使用中国镜像源进行快速构建

set -e

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

VERSION=${1:-latest}

echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}  VEPAI平台中国网络优化构建${NC}"
echo -e "${BLUE}  版本: ${VERSION}${NC}"
echo -e "${BLUE}  使用国内镜像源加速构建${NC}"
echo -e "${BLUE}========================================${NC}"

# 检查当前目录是否正确
if [[ ! -f "run_prod.py" ]] && [[ ! -f "run.py" ]]; then
    echo -e "${RED}错误: 请在backend目录中运行此脚本${NC}"
    exit 1
fi

# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
    echo -e "${RED}错误: Docker未安装或未启动${NC}"
    exit 1
fi

# 使用正确的docker-compose命令
DOCKER_COMPOSE="docker-compose"
if command -v docker compose &> /dev/null; then
    DOCKER_COMPOSE="docker compose"
fi

# 创建必要的目录
echo -e "${YELLOW}创建必要的目录...${NC}"
mkdir -p ../logs ../data

# 检查前端目录是否存在
if [[ ! -d "../vepai-auto_runner-frontend" ]]; then
    echo -e "${RED}错误: 找不到前端目录 ../vepai-auto_runner-frontend${NC}"
    exit 1
fi

# 停止现有容器
echo -e "${YELLOW}停止现有容器...${NC}"
$DOCKER_COMPOSE -f docker-compose.prod.yml down 2>/dev/null || true

# 构建后端镜像（使用中国优化Dockerfile）
echo -e "${YELLOW}构建后端镜像 (中国网络优化)...${NC}"
echo -e "${BLUE}使用清华大学镜像源加速下载...${NC}"

# 首先尝试使用修复版本的Dockerfile.china
docker build -f Dockerfile.china -t vepai-backend:${VERSION} . \
    --progress=plain \
    --build-arg BUILDKIT_INLINE_CACHE=1 \
    --no-cache

if [ $? -ne 0 ]; then
    echo -e "${YELLOW}第一次构建失败，尝试使用简化版本...${NC}"
    
    # 如果失败，尝试使用简化版本
    if [ -f "Dockerfile.china_simple" ]; then
        docker build -f Dockerfile.china_simple -t vepai-backend:${VERSION} . --progress=plain
        if [ $? -ne 0 ]; then
            echo -e "${RED}简化版本也失败，尝试使用标准Dockerfile...${NC}"
            docker build -f Dockerfile.prod -t vepai-backend:${VERSION} . --progress=plain
            if [ $? -ne 0 ]; then
                echo -e "${RED}后端镜像构建完全失败!${NC}"
                exit 1
            fi
        fi
    else
        echo -e "${RED}简化版本文件不存在，尝试使用标准Dockerfile...${NC}"
        docker build -f Dockerfile.prod -t vepai-backend:${VERSION} . --progress=plain
        if [ $? -ne 0 ]; then
            echo -e "${RED}后端镜像构建完全失败!${NC}"
            exit 1
        fi
    fi
fi
docker tag vepai-backend:${VERSION} vepai-backend:latest

# 构建前端镜像
echo -e "${YELLOW}构建前端镜像 (中国网络优化)...${NC}"
echo -e "${BLUE}使用淘宝npm镜像源加速下载...${NC}"

cd ../vepai-auto_runner-frontend
docker build -f Dockerfile.prod -t vepai-frontend:${VERSION} . \
    --progress=plain \
    --build-arg BUILDKIT_INLINE_CACHE=1 \
    --no-cache

if [ $? -ne 0 ]; then
    echo -e "${RED}前端镜像构建失败!${NC}"
    cd ../vepai-auto_runner-backend
    exit 1
fi
docker tag vepai-frontend:${VERSION} vepai-frontend:latest
cd ../vepai-auto_runner-backend

echo -e "\n${GREEN}中国网络优化构建完成！${NC}"

# 显示构建的镜像
echo -e "\n${BLUE}构建的镜像:${NC}"
docker images | grep vepai

# 显示镜像大小
echo -e "\n${BLUE}镜像详细信息:${NC}"
docker images vepai-backend:latest
docker images vepai-frontend:latest

echo -e "\n${GREEN}========================================${NC}"
echo -e "${GREEN}  中国网络优化构建完成！${NC}"
echo -e "${GREEN}  构建速度提升显著！${NC}"
echo -e "${GREEN}  使用 './deploy.sh start' 部署${NC}"
echo -e "${GREEN}========================================${NC}" 